#pragma once
#include <boost/variant.hpp>
#include <string>
enum  EFieldType
{
	EFieldTypeUnknown = 0,
	EFieldTypeInt,
	EFieldTypeFloat,
	EFieldTypeString
};
typedef boost::variant<uint64_t, double, std::string> CLogValue ;

class CLogField 
{
public:
	CLogField();
	CLogField(const std::string& name, const CLogValue& value);
	const std::string& GetName() const;
	const CLogValue& GetValue() const;

	EFieldType GetType() const;

	int getSize() const;
private:
	std::string m_name;
	CLogValue m_value;
};

typedef std::shared_ptr<CLogField> CLogFieldPtr;